import {nanoid} from "nanoid";
import dayjs from "dayjs";
import duration from "dayjs/esm/plugin/duration";

dayjs.extend(duration)
dayjs.locale('zh-cn')

export const publicFun = {
    methods: {
        /**
         * 加载assets文件夹下的图片
         * @param imgName   图片名字
         * @return {*}      加载的图片
         */
        loadAssetsImage(imgName) {
            return require(`@/assets/images/${imgName}`)
        },
        loadAssetsIcon(iconName) {
            return require(`@/assets/icon/${iconName}`)
        },
        /**
         * 获取当前时间的时间戳
         * @return {number}   时间戳
         */
        getTimestamp() {
            return new Date().getTime()
        },
        /**
         * 显示提示框
         * @param msg   显示的信息
         * @param type  类型
         */
        showTips(msg, type) {
            this.$message({
                showClose: true,
                message: msg,
                type,
                duration: 2000
            })
        },

        /**
         * 将数字格式化为带有单位的
         * @param num   数字
         * @return {*|string}   格式化后的数字
         */
        formatBigNum(num) {
            if (num === undefined) {
                return ''
            }
            const digit = 2
            if (num < 10000) {
                return num
            } else if (num < 100000000) {
                const tmp = num / 10000
                return `${tmp.toFixed(digit)}万`
            } else {
                const tmp = num / 100000000
                return `${tmp.toFixed(digit)}亿`
            }
        },
        /**
         * 从数组中随机选择指定数量的元素
         * @param arr   原数组
         * @param num   选择元素的数量
         * @return {*[]}    选择的元素
         */
        getSpecialNumRandom(arr, num) {
            const tmpArr = [...arr]
            const result = []
            if (num >= tmpArr.length) {
                return tmpArr
            }
            while (num--) {
                const index = Math.floor(Math.random() * tmpArr.length)
                result.push(tmpArr[index])
                tmpArr.splice(index, 1)
            }
            return result
        },
        /**
         * 将音乐秒数转为mm:ss格式
         * @param second    秒数
         * @return {string} mm:ss时间格式
         */
        formatMusicTime(second) {
            const duration = dayjs.duration(second, 's')
            return `${duration.minutes()}:${(duration.seconds() < 10 ? '0' : '') + duration.seconds()}`
        }
    }
}